//输入数组，数组大小，和返回数组的大小
 //将情况分成3类：1，数组最后一位的数值小于9；2，数组最后一位等于9，但不同于第三类（特殊情况）；3，数组中的所有元素都为9。
 //对于第一类情况，只需把数组最后一位元素的值加1然后在返回数组即可；
 //对于第二种情况，需要用到for来将数组从后到前进行遍历和判断，若该位置元素等于9则令其值等于0；若该元素不等于9则令其加1，在return数组结束循环；
 //对于第三种情况，已知当数组的所有元素都为9时再加1会使数组溢出，所以需要使用malloc开辟一块内存空间，使其大小比原数组多一，再令新数组的第一个元素为1，其余元素则用for循环遍历为0，最后再return新数组；
int* plusOne(int* digits, int digitsSize, int* returnSize){
    
    for(int i = digitsSize-1;i>=0;i--)
    {
        if(digits[i] != 9)
        {
            digits[i]++;
            *returnSize = digitsSize;
            return digits;
        }else{
            digits[i]=0;
        }
    }
    int* ret=malloc((digitsSize+1)*sizeof*ret);
    ret[0]=1;
    for(int n =1;n<digitsSize+1;n++)
    {
        ret[n]=0;
    }
    *returnSize = digitsSize+1;
    return ret;

}